package com.atguigu.yygh.gateway.config;

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.cors.CorsConfiguration;
import org.springframework.web.cors.reactive.CorsWebFilter;
import org.springframework.web.cors.reactive.UrlBasedCorsConfigurationSource;
import org.springframework.web.util.pattern.PathPatternParser;

@Configuration
public class CorsConfig {
    @Bean
    public CorsWebFilter corsFilter() {
        CorsConfiguration config = new CorsConfiguration();
    //常见的配置:3个*,针对所有的请求地址,所有的请求方式,所有的请求头,都可以支持跨域处理

        config.addAllowedMethod("*");//针对所有的请求进行跨域处理
      //  config.addAllowedMethod("get"); 仅仅只对get类型的请求进行跨域处理
        config.addAllowedOrigin("*");  //针对所有的请求方式都可以处理跨域
     //   config.addAllowedHeader("http://localhost:9528"); //仅仅只针对http:localhost:9528地址的请求,进行跨域处理
        config.addAllowedHeader("*");//针对所有的请求头都可以进行跨域处理
     //   config.addAllowedHeader("abc");//只针对"abc"请求头可以进行跨域处理
        UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource(new PathPatternParser());
        source.registerCorsConfiguration("/**", config); //无论是/hosp /dict....都支持跨域
        return new CorsWebFilter(source);
    }
}